#include <iostream>
#include <algorithm>
using namespace std;

int T;
int N;
int sticks[21];
bool v[21];
int buckets[4];
int side;
bool tag;

// void dfs1(int x) {
//     if(x == N){
//         tag = 1;
//         return;
//     }
//     for(int i = 0; i<4; i++){
//         if(sticks[x] > side - buckets[i]) continue;
//         buckets[i] += sticks[x];
//         if(buckets[i] == side || buckets[i]+sticks[N-1] <= side) dfs1(x+1);
//         buckets[i] -= sticks[x];
//     }
//     return;
// }

void dfs(int x){
    if(x==3){
        tag = 1;
        return;
    }

    for(int i=0;i<N;i++){
        if(v[i]) continue;
        if(sticks[i] > side - buckets[x]) continue;

        // xuan
        v[i] = 1;
        buckets[i] += sticks[i];
        if(buckets[i] == side) dfs(x+1);
        else dfs(x);
        if(tag) return;
        // buxuan
        v[i] = 0;
        buckets[x] -= sticks[i];
    }
    return;
}

int main() {
    cin >> T;
    while (T--) {
        cin >> N;
        for (int i = 0; i < N; i++) cin >> sticks[i];
        int sum = 0;
        for (int i = 0; i < N; i++) sum += sticks[i];
        if (sum % 4) {
            cout << "no" << endl;
            continue;
        }
        side = sum / 4;
        sort(sticks, sticks + N);
        reverse(sticks, sticks+N);
        tag = 0;
        dfs(0);
        if(tag) cout<< "yes" << endl;
        else cout << "no" << endl;
    }
    return 0;
}